package com.example.springboot.service;

import com.example.springboot.common.dto.BookListDTO;
import com.example.springboot.common.request.AddBookRequest;
import com.example.springboot.common.request.BookListRequest;
import com.example.springboot.entity.Book;
import com.example.springboot.entity.Category;
import com.github.pagehelper.PageInfo;

import java.util.List;


public interface BookService {


    /**
     * 根据书名模糊查询
     * @param bookListRequest
     * @return
     */
    PageInfo<BookListDTO> page(BookListRequest bookListRequest);


    /**
     * 添加图书
     * @param addBookRequest
     * @throws Exception
     */
    void save(AddBookRequest addBookRequest) throws Exception;


    /**
     * 根据id获取需要修改的图书信息
     * @param id
     * @return
     */
    Book getById(Integer id);

    /**
     * 更新图书信息
     * @param addBookRequest
     * @throws Exception
     */
    void update(AddBookRequest addBookRequest) throws Exception;

    /**
     * 根据id删除图书分类
     * @param id
     */
    void deleteById(Integer id);

    /**
     * 建立分类树
     * @param pid
     * @param categories
     * @return
     */
    List<Category> createTree(Integer pid, List<Category> categories);

    /**
     * 查询所有图书信息
     * @return
     */
    List<Book> list();
}
